package DAO;

import DAO.Filtro.PedidoFiltro;
import Model.Pedido;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class PedidoDAO {

    public boolean cadastrarPedido(Pedido pedido) {
        try {

            Connection conn = GerenteConexao.getConexao();

            String query = "insert into pedido (nm_cliente, vl_pedido) values (?, ?)";

            PreparedStatement pst = conn.prepareStatement(query);

            pst.setString(1, pedido.getNomeCliente());
            pst.setDouble(2, pedido.getValor());

            pst.execute();
            pst.close();

            return true;

        } catch (Exception e) {
            return false;
        }
    }

    public List<Pedido> getPedidos(PedidoFiltro pedidoFiltro) {
        try {
            List<Pedido> ret = new ArrayList<>();

            Connection conn = GerenteConexao.getConexao();
            String query = "SELECT * FROM Pedido WHERE 1 = 1 ";
            PreparedStatement pst = conn.prepareStatement(query);

            if (pedidoFiltro.getNomeCliente() != "") {
                query += "AND cd_pedido = ? ";
                pst.setInt(2, pedidoFiltro.getNumeroPerido());
            }
            if (pedidoFiltro.getNumeroPerido() > 0) {
                query += "AND nm_cliente LIKE %?% ";
                pst.setInt(2, pedidoFiltro.getNumeroPerido());
            }

            ResultSet rs = pst.executeQuery();

            Pedido p = new Pedido();
            
            p.setNomeCliente(rs.getString("nm_cliente"));
            p.setValor(rs.getDouble("vl_pedido"));
                        
            pst.execute();
            pst.close();

            return ret;

        } catch (Exception e) {
            return null;
        }
    }
}
